import Vue from 'vue'
import App from './App.vue'
import router from './router/index'
import store from './store/index'
import cookie from 'js-cookie'

// import request from './axios/request'
// Vue.prototype.$http = request
// 导入字体图标
import './assets/font/iconfont.css'
// import axios from 'axios'
// axios.defaults.baseURL='/api'
import axios from './axios/request'
Vue.prototype.$http = axios
// 引入默认样式
import 'reset-css'
Vue.config.productionTip = false
// 相对时间过滤器,把时间戳转换成时间
// 格式: 2022-02-25 21:43:23
Vue.filter('dateFormat', (dataStr) => {
  var now = new Date(dataStr);
    var year = now.getFullYear(); //取得4位数的年份
    var month = now.getMonth() + 1; //取得日期中的月份，其中0表示1月，11表示12月
    var date = now.getDate(); //返回日期月份中的天数（1到31）
    var hour = now.getHours(); //返回日期中的小时数（0到23）
    var minute = now.getMinutes(); //返回日期中的分钟数（0到59）
    var second = now.getSeconds(); //返回日期中的秒数（0到59）
    return (year +"-" +month +"-" +date +" " +hour +":" +minute + ":" +second);
}),
// 全局拦截器,在进入需要用户权限的页面前校验是否已经登录
router.beforeResolve( async(to, from, next) => {
  const loginUser = store.state.isLogin;
  // 判断路由是否设置相应校验用户权限
  if (to.meta.requireAuth) {
    if (!loginUser) {
      // 没有登录，显示登录组件
      store.commit("showLoginModal");
      // store.dispatch("setShowLogin", true);
      if (from.name == null) {
        //此时，是在页面没有加载，直接在地址栏输入链接，进入需要登录验证的页面
        next("/");
        return;
      }
      // 终止导航
      next(false);
      return;
    }
    if(!store.state.shopcarNumber){
      const { data: res } = await axios.get("/dqxmall/cart/list");
        if (res.code === 0) {
          // console.log("购物车", res);
          store.dispatch("setShopcarNumber", res.cartVOS.length);
          cookie.set("shopcarNumber", res.cartVOS.length, { domain: "localhost" });
        }
    }
  }
  next();
});

//element-ui按需引入
import './plugins/element.js'
new Vue({
  render: h => h(App),
  store,router
}).$mount('#app')
